package de.wbh.gwt.form.layouter.gwt.ui.view;

import javax.inject.Inject;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.CssResource;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;

import de.wbh.gwt.form.layouter.shared.activity.SaveConfigurationView;

public class SaveConfigurationViewImpl extends Composite implements SaveConfigurationView {

	public static interface Resources extends ClientBundle {

		static interface Style extends CssResource {
			String contentPanel();

			String headline();

			String panel();
		}

		@Source("saveConfigurationViewImpl.css")
		Style style();

	}

	interface SaveConfigurationViewImplUiBinder extends UiBinder<Widget, SaveConfigurationViewImpl> {
	}

	private static SaveConfigurationViewImplUiBinder uiBinder = GWT.create(SaveConfigurationViewImplUiBinder.class);

	private Presenter presenter;

	@UiField(provided = true)
	Resources resources;

	@UiField
	TextBox configurationNameTextBox;

	@Inject
	public SaveConfigurationViewImpl(Resources resources) {
		this.resources = resources;
		resources.style().ensureInjected();
		initWidget(uiBinder.createAndBindUi(this));
	}

	@UiHandler("saveConfigurationButton")
	public void oSaveConfigurationButtonClick(ClickEvent event) {
		if (this.presenter != null) {
			this.presenter.save(this.configurationNameTextBox.getValue());
		}
	}

	@Override
	public void setPresenter(Presenter presenter) {
		this.presenter = presenter;
	}

}
